/*
 *  ogden.h
 *  EPPI-0.0
 *
 *  Created by Sergio Conde Martin on 18/07/11.
 *
 */

 
#ifndef _ogden_h_
#define _ogden_h_

#include <iostream>
#include "hyperelasticstretches.h"

class Ogden : public HyperelasticStretches
{
public:
//	double E;
//	double nu;
//	double lambda;
//	double mu;
	double N;
//	double K;
	double b;
	string typeVol;
	vector <double> vAlpha;
	vector <double> vMu;
	

/*	Data members from the base class Material
	string name;
	double density;
	vector< vector<double> > Ct;	// Linearized constitutive tensor
*/
	
public:
	Ogden();
	Ogden(ifstream &, const string &, const string &);
	~Ogden(){}
	
	// Virtual functions from the HyperelasticStretches
	void strainEnergy(void);	// Strain energy
	void DstrainEnergy(void);
	void DDstrainEnergy(void);
    void DDDstrainEnergy(void);
	
	// Virtual functions from the Material
//	double getE();
//	double getNu();
//	double getLambda();
//	double getMu();
//	double getDensity();
//	double getBulkmodulus();
	vector < double > getvMu();
	vector < double > getvAlpha();
	
	
	
	/** Local functions */
};

#endif	
	
